package de.hdu.mfz.dto;

/** Jede AJAX Antwort wird ein ein Objekt vom Typ AJAXMessages gekapselt.
 * Das Objekt hat die Eigenschaft isOk, welche anzeigt, ob tatsächlich Daten 
 * oder eine Fehlermeldung zurückgegeben werden.
 * 
 * Die HTML Anzeige kann dann prüfen, ob die erwartete Antwort (z.B. ein
 * RouteZeile-Objekt) zurück kommt oder eine Fehlemeldung.  
 *
 * isOk = true:
 * 	ReturnCode ist leer
 *  ReturnMessage enthält das zurückzugebende Objekt
 * 
 * isOk = false:
 *  ReturnCode enthält einen festgelegten Fehlercode (hier über eine 
 *  enum definiert. Im JSON String ist es später ein String.)
 *  ReturnMessages enthält einen String mit der Fehlermeldung.
 * 
 * @author ronin
 * 26.04.2012
 */

public class AJAXMessage {
	/* Alle Eigenschaften der Klasse müssen public sein, damit 
	 * sie von der JSON View in einen JSON String umgewandelt werden können.
	 * Mit Getter-Methoden funktioniert das leider nicht.*/

	public boolean isOk;
	public FailureCode returnCode;
	public Object returnMessage;
	public enum FailureCode { None, ErrorMessage, WarningMessage, InfoMessage, LoginRequired};
	
	public AJAXMessage() {
	}
	public AJAXMessage(boolean isOk, FailureCode returnCode, Object returnMessage) {
		this.isOk = isOk;
		this.returnCode = returnCode;
		this.returnMessage = returnMessage;
	}

}


